package com.xuecheng.api.course;

import com.xuecheng.framework.domain.cms.response.CoursePreviewResult;
import com.xuecheng.framework.domain.course.*;
import com.xuecheng.framework.domain.course.ext.CourseView;
import com.xuecheng.framework.domain.course.ext.TeachplanNode;
import com.xuecheng.framework.domain.course.request.CourseListRequest;
import com.xuecheng.framework.model.response.QueryResponseResult;
import com.xuecheng.framework.model.response.ResponseResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

/**
 * @author Kidy
 * @date 2020/6/26 20:52
 */
@Api(value = "课程管理接口", description = "课程管理接口,提供增,删,改,查")
public interface CourseControllerApi {
    @ApiOperation("课程计划查询")
    public TeachplanNode findTeachplanList(String courseId);

    @ApiOperation("添加课程计划")
    public ResponseResult addTeachplan(Teachplan teachplan);

    @ApiOperation("查询我的课程列表")
    public QueryResponseResult findCourseList(
            Integer page,
            Integer size,
            CourseListRequest courseListRequest);

    @ApiOperation("新增课程信息")
    public ResponseResult addCourseBase(CourseBase courseBase);

    @ApiOperation("查询课程基本信息")
    public CourseBase findCourseBaseById(String id);

    @ApiOperation("更新课程基本信息")
    public ResponseResult updateCourseBase(String courseId, CourseBase courseBase);

    @ApiOperation("查询课程营销信息")
    public CourseMarket findCourseMarket(String courseId);

    @ApiOperation("更新课程营销信息")
    public ResponseResult updateCourseMarket(String courseId, CourseMarket courseMarket);

    @ApiOperation("添加课程图片")
    public ResponseResult addCoursePic(String courseId, String pic);

    @ApiOperation("查询课程图片")
    public CoursePic findCoursePic(String courseId);

    @ApiOperation("删除课程图片")
    public ResponseResult deleteCoursePic(String courseId);

    @ApiOperation("课程视图查询")
    public CourseView courseView(String id);

    @ApiOperation("课程预览")
    public CoursePreviewResult coursePreview (String id);

    @ApiOperation("课程发布")
    public CoursePreviewResult coursePublish (String id);

    @ApiOperation("保存课程计划与媒资文件关联")
    public ResponseResult saveMedia(TeachplanMedia teachplanMedia);
}
